/*******************************************************************************
 *  Copyright (c) [scl]。保留所有权利。
 *     本文仅供个人学习和研究使用，禁止用于商业用途。
 ******************************************************************************/

#ifndef STM32_LIB_MODBUS_COMMON_H
#define STM32_LIB_MODBUS_COMMON_H

#include "sys_core.h"
#define cv_u8_to_16(arr) ((uint16_t) ((uint16_t) (((arr)[0]) << 8) + ((arr)[1])))
uint16_t pack_bool_array(uint8_t *dst, const bool *data, uint16_t data_len);

void un_pack_bool(bool *dst, uint16_t cnt, const uint8_t *data, uint16_t data_len);

/**
 * @brief CRC CHECK SUM
 * @param buf
 * @param buf_len
 * @return
 */
uint16_t modbus_crc_compute(const uint8_t *buf, uint16_t buf_len);

#endif //STM32_LIB_MODBUS_COMMON_H
